﻿#define _CRT_SECURE_NO_WARNINGS 1

/********头文件的引入********/
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
//#include <Windows.h>

/********函数的声明********/
void menu(void);
void game(void);
void set_seed(void);


/********全局变量声明********/
int num = 0;		//生成的随机数
int guess = 0;		//猜的数字
int count = 0;		//进行猜数字的次数


/********主函数********/
int main()
{
	unsigned short choice = 0;//用户选择项
	set_seed();
	do
	{
		menu();
		scanf("%hu", &choice);
		switch (choice)
		{
		case 1:
			printf("-----------开始猜数字游戏-----------\n");
			game();
			break;
		case 0:
			printf("--------------结束游戏-------------\n");
			break;
		default:
			printf("错误选择，请重新选择\n");
			break;
		}
	} while (choice);
	
	return 0;
}


/********菜单函数********/
void menu(void)
{
	printf("/*********************************/\n");
	printf("/**********1:Play  0:End**********/\n");
	printf("/*********************************/\n");
	//Sleep(1000);
	printf("\n---------------请选择--------------\n>");
}
/********种子改变函数********/
void set_seed(void)
{
	//rand函数：生成伪随机数，基于种子而变的“随机数”
	//srand函数：改变种子函数；需要传入unsigned int 类型的值
	/*srand(2);
	num = rand();*/
	//time函数：时间生成函数，传回一个整型数值（时间戳）；
	srand((unsigned int)time(NULL));
}

/********游戏函数********/
void game(void)
{
	//num = rand();
	//rand()%100 : 0~99,控制随机数的生产范围
	//rand()%100 + 1 : 1~100,控制随机数的生产范围 
	//100 + rand()%(200 - 100 + 1):100~200,控制随机数的生产范围
	//a + rand()%(b - a + 1):a~b，控制随机数的生产范围
	//1.生成随机数：
	num = rand() % 100 + 1;
	//printf("%d\n", num);
	//2.猜数字：
	while (1)
	{
		printf("请猜数字：\n>");
		if(scanf("%d", &guess) == EOF)return 0;
		count++;
		if (guess > num)
		{
			printf("猜大了\n");
			//goto successtive;
		}
		else if (guess < num)
		{
			printf("猜小了\n");
		}
		else
		{
			printf("---------------恭喜----------------\n");
			printf("猜对啦\n此数字为 [[%d]]\n共猜：%d次\n", num,count);
			printf("---------------恭喜----------------\n\n");
			break;
		}
	}
	//return;
}

//#include<stdio.h>
//int main()
//{
//	int arr[] = {1,2,(3,4),5,};
//	printf("%d", sizeof(arr));
//	return 0;
//}